package main

import (
	"log"
	"os"

	"gopkg.in/macaron.v1"
)

var logger = log.New(os.Stdout, "[APP] ", 0)

func main() {
	m := macaron.New()
	m.Map(logger)
	m.Get("/", func(l *log.Logger) {
		l.Println("这是我的全局日志器")

	})
	// 将myLogger作为一个中间处理器，不是最终处理器
	// 作用是注册一个请求级别服务，映射到当前请求中
	m.Get("/123", myLogger, func(l *log.Logger) string {
		l.Println("这是我的请求级别日志器")
		return "hello world"
	})
	m.Run()
}

// 创建请求级别服务
func myLogger(ctx *macaron.Context) {
	var logger = log.New(os.Stdout, "myLogger ", 0)
	ctx.Map(logger)
}

// 日志显示如下
// [APP] listening on 0.0.0.0:4000 (development)
// [APP] 这是我的全局日志器  		// 全局mapping
// myLogger 这是我的请求级别日志器	// 请求级别
